#ifndef NORMALIZATION_GLOBALS_H_
#define NORMALIZATION_GLOBALS_H_

#include "normalized_datatypes.h"

// for print_normalization_stats

// number of normalized atomic concepts: existing atomic ones + ones generated
// during normalization
extern int normalized_atomic_concept_count;
// number of normalized atomic roles
extern int normalized_atomic_role_count;
// number of generated atomic concepts for normalization stats
// extern int generated_atomic_concept_count;
// number of generated existential restrictions for normalization stats
extern int generated_exists_restriction_count;
extern int generated_subclass_axiom_count;
extern int singleton_premise_count;
// max lhs and rhs sizes for normalization stats
extern int max_lhs_size;
extern int max_rhs_size;
extern int cum_lhs_size;
extern int cum_rhs_size;
extern int generated_subrole_axiom_count;

extern NormalizedConcept** normalized_atomic_concepts;

// extern NormalizedConcept** normalized_atomic_concepts_left;
// extern int normalized_atomic_concepts_left_count;
extern Pvoid_t normalized_atomic_concepts_left;

extern NormalizedRole** normalized_atomic_roles;

// judy arrays for storing normalized existential restrictions and conjunctions
extern Pvoid_t normalized_exists_restrictions;
extern Pvoid_t normalized_conjunctions; 

// judy array for storing generated atomic concepts
// extern Pvoid_t generated_atomic_concepts; 
extern Pvoid_t generated_atomic_concepts_right;
extern Pvoid_t generated_atomic_concepts_left;

extern int generated_atomic_concepts_left_count;
extern int generated_atomic_concepts_right_count;

// the normalized TBox
extern NormalizedTBox normalized_tbox;


#endif /*NORMALIZATION_GLOBALS_H */
